#include <stdio.h>

/**
 * @brief 简单选择排序函数，时间复杂度O(n^2)
 * @param arr 待排序数组
 * @param n 数组长度
 * @return 0表示成功，-1表示失败
 */
int simpleSelectSort(int arr[], int n)
{
  // 参数验证
  if (arr == NULL || n <= 0)
  {
    return -1; // 返回错误码
  }

  for (int i = 0; i < n - 1; i++)
  {
    int minIndex = i;
    for (int j = i + 1; j < n; j++)
    {
      if (arr[j] < arr[minIndex])
      {
        minIndex = j;
      }
    }
    // 交换找到的最小值和当前值
    if (minIndex != i)
    {
      int temp = arr[i];
      arr[i] = arr[minIndex];
      arr[minIndex] = temp;
    }
  }
  return 0; // 成功返回
}

int main()
{
  int arr[] = {64, 34, 25, 12, 22, 11, 90};
  int n = sizeof(arr) / sizeof(arr[0]);
  simpleSelectSort(arr, n);
  printf("Sorted array: \n");
  for (int i = 0; i < n; i++)
    printf("%d ", arr[i]);
  return 0;
}